package com.rj.ability.leqi.adapter.domain.aisino;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.rj.ability.leqi.req.QdfpscOfBdcReq;
import com.rj.core.constant.RegexpPool;
import com.rj.util.AssertUtils;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

/**
 * 数电票上传(不动产租赁)
 *
 * @author YFX_RANLUBO
 * @date 2024/04/30 15:42
 **/
@Data
@AutoMapper(target = QdfpscOfBdcReq.class, reverseConvertGenerate = false)
public class BdczlData {
    /**
     * 不动产坐落地址 （省） varchar 20 是
     * 必须以省、自治区、特别行政区、北京市、天津市、上海市、重庆市任意一个关键词结尾。
     * 当红冲不动产坐落地址未修改为三个字段的蓝票时，如果蓝票不动产坐落地址没有填写省（直辖 市、自治区、 特别行政区）， 该字段可不填写。
     */
    @JsonProperty("realEstateAddressProvince")
    private String bdczldzS;
    /**
     * 不动产坐落地址 （市） varchar 20 否
     * 必须以市、盟、 自治州、地区、 区任意一个关键词结尾。
     * 当红冲不动产坐落地址未修改为三个字段的蓝票时，如果蓝票不动产坐落地址没有填写省（直辖市、自治区、 特别行政区），该字段可不填写。
     */
    @JsonProperty("realEstateAddressCity")
    private String bdczldzS1;
    /**
     * 不动产坐落地址 （详细地址） varchar 80 是
     * 必须包含街、路、村、乡、镇、道、巷、号任意一个关键词。
     */
    @JsonProperty("realEstateAddress")
    private String bdczldzXxdz;
    /**
     * 租赁期起止 date 40 是
     * “ 租赁期起”+“空格”+“租赁期止”，其中租赁期起、止的格式为 ：yyyy-MM-dd
     */
    @JsonProperty("leaseTerm")
    private String zlqqz;
    /**
     * 跨地（市）标志 varchar 1 是 Y 是 N 否
     */
    @JsonProperty("crossRegionalSign")
    private String kdsbz;
    /**
     * 产权证书/不动产权证号 varchar 40 是
     * 无“产权证书/不动产权证号”时，填写 “无”
     */
    @JsonProperty("propertyRightCertificate")
    private String cqzsbh;

    public void check() {
        AssertUtils.in(false, "跨地（市）标志", kdsbz, "Y", "N");
        AssertUtils.notEmpty("产权证书/不动产权证号", cqzsbh, 40);
        AssertUtils.notEmpty("租赁期起止", zlqqz, 40);
        AssertUtils.match(false, "^" + RegexpPool.YYYY_MM_DD + "\\s+" + RegexpPool.YYYY_MM_DD + "$",
                "租赁期起止", zlqqz);
        AssertUtils.match(false, "不动产坐落地址", bdczldzS, RegexpPool.DZ_PROVINCE);
        AssertUtils.match(false, "不动产坐落地址 （市）", bdczldzS, RegexpPool.DZ_CITY);
        AssertUtils.match(false, "不动产坐落地址（详细地址）", bdczldzS, RegexpPool.DZ_CUN);
    }

}
